home *** CD-ROM | disk | FTP | other *** search
/ Risc World 3 / Risc World 3.iso / SOFTWARE / ISSUE4 / ZAP / !Zap / Code / Extensions / LineEditor / WhatsNew < prev   
Text File  |  2002-11-03  |  8KB  |  212 lines

  1. What's new?
  2. ===========
  3.  
  4. Since 2.65, which was bundled with the !Zap release 1.20:
  5.  
  6. 2.66:
  7.  
  8. Under RISC OS 3.5, a dynamic area is used for workspace, rather than the   
  9. RMA.  This should help prevent RMA fragmentation amongst other things.
  10.  
  11. 2.67 (bundled with !Zap release 1.30):
  12.  
  13. Bug fix -- routine which redraws a line on Ctrl-L, etc now repositions cursor
  14. after redraw.  Code *was* there, but a missing 'S' meant that it didn't fire
  15. ever.
  16.  
  17. Added two bindable commands:
  18.  
  19. SHOWCOMP:  This list all completions matching a wildcarded filename.  Files
  20. which are regarded as executable (Obey, Absolute, BASIC, Utility and Command
  21. filetypes) are marked with a trailing "*" and directories (and application
  22. directories) with a trailing ".".  Since neither "*" nor "." are valid in
  23. leafnames, this shouldn't cause any ambiguities.  This is bound to Ctrl-C in
  24. the default map.  In tcsh it is on Ctrl-D, which also does "delete right" if
  25. there are characters to the right, or lists completions if you're at the end
  26. of the line. Or logs you out if you haven't typed anything :(.  LineEditor is
  27. more versatile, so Ctrl-D isn't really a good choice.
  28.  
  29. COMPLETESHOW:  This does a tcsh-like completion (i.e. complete as far as all
  30. matches are common) and then does SHOWCOMP if there is more than one
  31. completion.  I have rebound TAB to this instead of COMPLETE in the default
  32. key map.
  33.  
  34. File lists mark directories/apps with a trailing '.' and executables (i.e.
  35. Command, BASIC, Utility, Absolute, Obey) with a trailing '*'.
  36.  
  37. The completion code will now turn on the hourglass if the completion takes a
  38. while (e.g. completing filenames on a freshly inserted floppy disc).
  39.  
  40. The completion code now correctly handles filenames containing temporary
  41. filing systems and no sub-directories (for example "-adfs-foo*").
  42.  
  43. Added FILEROPEN and FILERCLOSE hackily (currently disabled).  These do
  44. a Filer_OpenDir/Filer_CloseDir on the directory currently being completed.
  45.  
  46. Removed a few dead code instructions (ho hum).
  47.  
  48. Fixed a couple of problems handling addresses with top bit set (hopefully).
  49.  
  50. Now redisplay prompt in redrawline too, using Mark Wooding's code to print
  51. CLI$Prompt.
  52.  
  53. Removed *Help Editor text -- will be replaced by an option to "bindkey" at
  54. some point.
  55.  
  56. Removed all use of CMOS RAM, and switched to using a SWI call, which allows
  57. more configuration options.  See file "ConfigOpts" for details.
  58.  
  59. Added option to not remove identical lines from history.
  60.  
  61. Added option to set maximum line length to store in history.
  62.  
  63. Various internal tweaks and fettles
  64.  
  65. Buffer API added for use by external programs (e.g. !Zap).  If you're
  66. especially interested, contact me and I'll send you the API documentation as
  67. it stands.  I'll tidy up and release it with the next release.
  68.  
  69. Fixed bug which meant unexpanded leading tildes were never stripped.
  70.  
  71. Added ! expansion like csh/tcsh/bash.  !! expands to the last line, !<n>
  72. gives history line n, !-<n> gives the n-th most recent.  Currently this
  73. is only applied if the ! is at the start of the line.
  74.  
  75. ~ expansion and ! expansion can be turned off if desired.
  76.  
  77. Cursor is now restored by uncopy.
  78.  
  79. Copy action now toggles as intended.
  80.  
  81. ^ replacement added ("^flie^file" will replace the first match for "flie"
  82. with "file" in the previous line in the history and "^flie^file^extra" will
  83. also append "extra").  This is like in various UNIX shells.
  84.  
  85. 2.68:
  86.  
  87. Fixed bug which could cause a crash if LineEditor is started with parameters.
  88.  
  89. 2.69:
  90.  
  91. Added System variable completion (e.g. type <Sys and press TAB).  There's a
  92. known niggle at present, which is that LineEditor doesn't like '.' when
  93. parsing for system variable names (such as in "Alias$.") so 4DOS-style
  94. completion won't step past them.  The fix is more involved than it might
  95. seem, so I've left it for the next release.
  96.  
  97. Extended key codes are now disabled if a *Exec file is being processed (check
  98. fails in TaskWindows for some reason (on Risc PC anyway)).
  99.  
  100. scSpace now produces correct keycode value (was producing code for cSpace).
  101.  
  102. Bug fix for 4DOS completion (used to rely on free + malloc working).
  103.  
  104. Beeps are now produced by calling SWI Sound_Control so work even with
  105. poor TaskWindow servers which ignore VDU7 (such as !Edit).
  106.  
  107. Temporary fix for problem with restarting LineEditor while !Zap is running:
  108. Now refuses to shut down if any client buffers have been created but not
  109. destroyed.  The full fix is to take an optional task handle and free the
  110. client buffer if that task quits.
  111.  
  112. Added workaround for ImageFSFix bug (it "loses" VS on some OS_GBPB errors).
  113.  
  114. Fixed bug in "previous completion" code which could cause a very long loop
  115. which couldn't be broken out of (very long == possibly several days).
  116.  
  117. 2.70:
  118.  
  119. Unknown SWIs in LineEditor SWI chunk no longer hang machine (bug in PRM
  120. sample code).
  121.  
  122. Fixed completion code so system variable completions with '.' in work.
  123.  
  124. Added filing system name completion (e.g. "-A" [TAB] -> "-ADFS-").
  125.  
  126. Add trailing dots now works for 4DOS completion.
  127.  
  128. 4DOS completion of system variables adds trailing '>' (and for FS adds '-').
  129.  
  130. LineEditor_CreateBuffer extended to allow task handle to be passed in, and
  131. the buffer is freed automatically if that task quits.
  132.  
  133. List completions of system variable adds 'M' for macro, 'n' for number,
  134. 'C' for code.
  135.  
  136. List completions of filing system adds 'r' for read-only FS (not RO2).
  137.  
  138. You can now safely quit a TaskWindow from the Task Manager (on RISC OS 3.1,
  139. used to not work and sometimes could even hang machine).
  140.  
  141. 2.71:
  142.  
  143. Added *SaveHistory/*LoadHistory.  These save/load the history buffer as a
  144. text file (most recently used buffer if you use local buffers).  LoadHistory
  145. passes lines through the usual min/max length checks, although currently
  146. lines over 255 characters are ignored regardless.  With global history, add
  147. "*LoadHistory somefile" to your !Boot and "*SaveHistory somefile" to a
  148. shutdown script (assuming you have one) and your history will persist over
  149. shutdowns.  This will be made simpler in a future release.
  150.  
  151. Fixed bug which could cause hang if history buffer filled up.
  152.  
  153. *Recall with local history now only reports current buffer (please complain
  154. if you prefer the old behaviour).
  155.  
  156. Minor internal tweak to cursor code.
  157.  
  158. 2.72:
  159.  
  160. Fixed the swapchars action (bound to Ctrl-T by default).  Ironically, the
  161. problem was that I'd transposed the arguments of a MOV instruction.
  162.  
  163. 2.73:
  164.  
  165. Added BASH-like "don't store lines with leading spaces" option.
  166.  
  167. Command completion added.
  168.  
  169. Added SWI LineEditor_ReadInfo for !Zap.
  170.  
  171. Bug fix: *LoadHistory now creates an instance if there isn't one already -
  172. previously it would be ignored if executed before any call to OS_ReadLine.
  173.  
  174. Added FILEROPEN action (bound by default to Ctrl-O) which opens a filer
  175. window on the directory name under the cursor.  If the name isn't valid,
  176. LineEditor beeps.
  177.  
  178. Added hooks to allow colouring of prompt and completions (only really useful
  179. in single-tasking mode).  You set the colours like so:
  180.  
  181. Prompt:              *Set CLI$Prompt <17><1>*
  182. Edit:                *Set LineEditor$Edit <17><2>
  183. Completion List:     *Set LineEditor$List <17><3>
  184. Type flag in list:   *Set LineEditor$Type <17><4>
  185. Output from command: *Set LineEditor$Output <17><5>
  186.  
  187. Tip for those with too much free time - see what you can do by using a code
  188. variable...
  189.  
  190. 2.74 (Darren Salt):
  191.  
  192. Implemented OS_ReadLine's two flags in R0.
  193.  
  194. Added SWI LineEditor_ReadLine for general use by CLI programs.
  195.  
  196. The SWIs now return an error when given an invalid buffer ID.
  197.  
  198. Recognises A4 and PC-AT keyboards, specifically '\' to the left of 'Z'.
  199.  
  200. Added support for the extra W!nd*w$ keys. The keycodes are &168 (left logo),
  201. &169 (menu) and &16A (right logo); add 4 for Shift and 16 for Ctrl.
  202.  
  203. Page Up and Page Down are separately bindable. If left unbound, then the
  204. definitions used for Up and Down are used (with adjustments for Shift). The
  205. keycodes are &1CE (down) and &1CF (up); add &10 for Shift and &20 for Ctrl.
  206.  
  207. 2.75 (Darren Salt):
  208.  
  209. Hopefully made the module 26/32 neutral...
  210. Shifted the init string from RMRun to RMLoad/RMReinit.
  211. Uses territory-specific tables for case-insensitive comparison.
  212.